<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur est un administrateur
	if(isset($_SESSION) && $GLOBALS['USER']['admin']){
	
?>
<?php
//------------------------------------------------------------ Valeur des champs avant saisie

	$dv_maintenance = $GLOBALS['CONFIG']['maintenance']; // valeur du champ maintenance (cfg_maintenance)
	$dv_inscriptions = $GLOBALS['CONFIG']['inscriptions']; // valeur du champ autoriser les inscriptions (cfg_inscriptions)
	$dv_validation = $GLOBALS['CONFIG']['validation']; // valeur du champ valider les inscriptions (cfg_validation)
   $dv_modifLogin = $GLOBALS['CONFIG']['modifLogin']; // valeur du champ modifier son propre login(cfg_modifLogin)
	$dv_acces = $GLOBALS['CONFIG']['niveauUtilisateurs']; // valeur du champ niveau d'accès à l'inscription (cfg_acces)
	$dv_nbLignes = $GLOBALS['CONFIG']['nbParPage']; // valeur du champ nombre de lignes par page (cfg_nbLignes)
	$dv_footer = $index_footer // valeur du champ pied de page (cfg_footer)
	
?>
<?php
//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- la désactivation pour maintenance, l'autorisation d'inscription, la validation d'inscription, le niveau d'accès par défaut, et le nombre de lignes par page doivent être indiquées
	- Le niveau d'accès doit être compris en 0 et 5 inclus

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement

	trimTabByKey($_POST, "cfg_"); // appel à la fonction trimTabByKey() définie dans fonctions.php
	
	//---------------------------------- Contrôle des données ----------------------------------
	
	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données du pied de page
		if(isset($_POST['cfg_footer']) && is_string($_POST['cfg_footer'])){
			$dv_footer = $_POST['cfg_footer'];
		}else{
			$statut[] = "Le nombre de lignes par page n'est pas indiqué";
			$erreur = true;
		}
	
		// Contrôle des données du nombre de lignes par page
		if(isset($_POST['cfg_nbLignes']) && is_string($_POST['cfg_nbLignes'])){
			if(emptyString($_POST['cfg_nbLignes'])){
				$statut[] = "Nombre de lignes par page vide";
				$erreur = true;
			}else{
				if(!numericInt($_POST['cfg_nbLignes'])){
					$statut[] = "Format du nombre de lignes par page incorrect";
					$erreur = true;
				}else{
					$dv_nbLignes = $_POST['cfg_nbLignes'];
				}
			}
		}else{
			$statut[] = "Le nombre de lignes par page n'est pas indiqué";
			$erreur = true;
		}
		
		// Contrôle des données de la désactivation pour maintenance
		if(isset($_POST['cfg_maintenance']) && is_string($_POST['cfg_maintenance'])){
			if($_POST['cfg_maintenance'] != "oui" && $_POST['cfg_maintenance'] != "non"){
				$statut[] = "Format de la désactivation pour maintenance incorrect";
				$erreur = true;
			}else{
				if($_POST['cfg_maintenance'] == "oui"){
					$dv_maintenance = true;
				}else if($_POST['cfg_maintenance'] == "non"){
					$dv_maintenance = false;
				}
			}
		}else{
			$statut[] = "La désactivation pour maintenance n'est pas indiquée";
			$erreur = true;
		}
		
		// Contrôle des données de l'autorisation d'inscription
		if(isset($_POST['cfg_inscriptions']) && is_string($_POST['cfg_inscriptions'])){
			if($_POST['cfg_inscriptions'] != "oui" && $_POST['cfg_inscriptions'] != "non"){
				$statut[] = "Format de l'autorisation d'inscription incorrect";
				$erreur = true;
			}else{
				if($_POST['cfg_inscriptions'] == "oui"){
					$dv_inscriptions = true;
				}else if($_POST['cfg_inscriptions'] == "non"){
					$dv_inscriptions = false;
				}
			}
		}else{
			$statut[] = "L'autorisation d'inscription n'est pas indiquée";
			$erreur = true;
		}
		
		// Contrôle des données de la validation d'inscription
		if(isset($_POST['cfg_validation']) && is_string($_POST['cfg_validation'])){
			if($_POST['cfg_validation'] != "oui" && $_POST['cfg_validation'] != "non"){
				$statut[] = "Format de la validation d'inscription incorrect";
				$erreur = true;
			}else{
				if($_POST['cfg_validation'] == "oui"){
					$dv_validation = true;
				}else if($_POST['cfg_validation'] == "non"){
					$dv_validation = false;
				}
			}
		}else{
			$statut[] = "La validation d'inscription n'est pas indiquée";
			$erreur = true;
		}
		
      // Contrôle des données de la modification de login
		if(isset($_POST['cfg_modifLogin']) && is_string($_POST['cfg_modifLogin'])){
			if($_POST['cfg_modifLogin'] != "oui" && $_POST['cfg_modifLogin'] != "non"){
				$statut[] = "Format de la modification de login incorrect";
				$erreur = true;
			}else{
				if($_POST['cfg_modifLogin'] == "oui"){
					$dv_modifLogin = true;
				}else if($_POST['cfg_modifLogin'] == "non"){
					$dv_modifLogin = false;
				}
			}
		}else{
			$statut[] = "la modification de login n'est pas indiquée";
			$erreur = true;
		}
      
		// Contrôle des données du niveau d'accès à l'inscription
		if(isset($_POST['cfg_acces']) && is_string($_POST['cfg_acces'])){
			if($_POST['cfg_acces'] < 0 || $_POST['cfg_acces'] > 5){
				$statut[] = "Format du niveau d'accès incorrect";
				$erreur = true;
			}else{
				$dv_acces = $_POST['cfg_acces'];
			}
		}else{
			$statut[] = "Le niveau d'accès à l'inscription n'est pas indiqué";
			$erreur = true;
		}
		
		//---------------------------------- Modification de la configuration ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
		
			// On vérifie que la configuration a été enregistré dans la BDD
			$query_compte_configuration = "SELECT COUNT(*) FROM configuration";
			
			$result_compte_configuration = mysql_query($query_compte_configuration, $connexion) or logError("COMPTE CONFIGURATION-".$query_compte_configuration."-".mysql_error());

			if(mysql_num_rows($result_compte_configuration) == 1){ // Le comptage du combre d'enregistrement dans la table CONFIGURATION a pu être effectué
			
				$tab_compte_configuration = mysql_fetch_row($result_compte_configuration);
				
				// si la configuration a été enregistrée dans la BDD, on modifie l'enregistrement
				if($tab_compte_configuration[0] > 0){
		
					$query_modification_configuration = "UPDATE configuration ";
					$query_modification_configuration .= "SET FOOTER = ".mysqlString($_POST['cfg_footer'])." , ENMAINTENANCE = ".mysqlBool($_POST['cfg_maintenance'] == "oui")." , INSCRIPTIONSOUVERTES = ".mysqlBool($_POST['cfg_inscriptions'] == "oui")." , VALIDERINSCRIPTIONS = ".mysqlBool($_POST['cfg_validation'] == "oui")." , MODIF_LOGIN = ".mysqlBool($_POST['cfg_modifLogin'] == "oui")." , DEFAUTNIVEAUACCES = ".$_POST['cfg_acces']." , NBMESSAGESPAGE = ".$_POST['cfg_nbLignes']." ";
			
				// sinon on créé l'enregistrement
				}else{
				
					$query_modification_configuration = "INSERT INTO configuration(FOOTER, ENMAINTENANCE, INSCRIPTIONSOUVERTES, VALIDERINSCRIPTIONS, MODIF_LOGIN, DEFAUTNIVEAUACCES, NBMESSAGESPAGE) ";
					$query_modification_configuration .= "VALUES(".mysqlString($_POST['cfg_footer']).", ".mysqlBool($_POST['cfg_maintenance'] == "oui").", ".mysqlBool($_POST['cfg_inscriptions'] == "oui").", ".mysqlBool($_POST['cfg_validation'] == "oui").", ".mysqlBool($_POST['cfg_modifLogin'] == "oui").", ".$_POST['cfg_acces'].", ".$_POST['cfg_nbLignes'].") ";
				
				}
			
				$result_modification_configuration = mysql_query($query_modification_configuration, $connexion) or logError("MODIFICATION CONFIGURATION-".$query_modification_configuration."-".mysql_error());
			
				if($result_modification_configuration === true){
					$statut[] = "La configuration a été modifiée";
					logAction("CONFIGURATION MODIFIEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
				}else{
					$statut[] = "Erreur critique lors de la modification de la configuration";
					$erreur = true;
				}
				
			}else{
				$statut[] = "Erreur critique lors de la modification de la configuration";
				$erreur = true;
			}
		
		}
		
	}
?>
<?php
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
		}
	
	}

?>
<form method="post" action="index.php?p=modifierConfig">
	<table class="formulaire" style="margin-left: auto; margin-right: auto;">
		<tr>
			<th class="titre" colspan="2">Modification de la configuration générale</th>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">maintenance</th>
		</tr>
		<tr>
			<td style="width: 220px" class="etiquette">Désactiver pour maintenance :</td>
			<td style="width: 400px" class="champ"><input type="radio" name="cfg_maintenance" value="oui" <?php if($dv_maintenance) echo "checked=\"checked\""; ?> /><label>Oui</label> <input type="radio" name="cfg_maintenance" value="non" <?php if(!$dv_maintenance) echo "checked=\"checked\""; ?> /><label>Non</label></td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">inscription</th>
		</tr>
		<tr>
			<td class="etiquette">Autoriser les inscriptions :</td>
			<td class="champ"><input type="radio" name="cfg_inscriptions" value="oui" <?php if($dv_inscriptions) echo "checked=\"checked\""; ?> /><label>Oui</label> <input type="radio" name="cfg_inscriptions" value="non" <?php if(!$dv_inscriptions) echo "checked=\"checked\""; ?> /><label>Non</label></td>
		</tr>
		<tr>
			<td class="etiquette">Valider les inscriptions :</td>
			<td class="champ"><input type="radio" name="cfg_validation" value="oui" <?php if($dv_validation) echo "checked=\"checked\""; ?> /><label>Oui</label> <input type="radio" name="cfg_validation" value="non" <?php if(!$dv_validation) echo "checked=\"checked\""; ?> /><label>Non</label></td>
		</tr>
		<tr>
			<td class="etiquette">Niveau d'accès à l'inscription :</td>
			<td class="champ">
				<select name="cfg_acces">
					<option value="0" <?php if($dv_acces == 0) echo "selected=\"selected\""; ?>>0: Accès refusé à l'application</option>
					<option value="1" <?php if($dv_acces == 1) echo "selected=\"selected\""; ?>>1: Se Connecter</option>
					<option value="2" <?php if($dv_acces == 2) echo "selected=\"selected\""; ?>>2: Se Connecter - Consulter</option>
					<option value="3" <?php if($dv_acces == 3) echo "selected=\"selected\""; ?>>3: Se Connecter - Consulter - Ajouter</option>
					<option value="4" <?php if($dv_acces == 4) echo "selected=\"selected\""; ?>>4: Se Connecter - Consulter - Ajouter - Modifier</option>
					<option value="5" <?php if($dv_acces == 5) echo "selected=\"selected\""; ?>>5: Se Connecter - Consulter - Ajouter - Modifier - Supprimer</option>
				</select>
			</td>
		</tr>
      <tr>
			<th class="sous_titre" colspan="2">Permissions</th>
		</tr>
		<tr>
			<td class="etiquette">modifier son propre login :</td>
			<td class="champ"><input type="radio" name="cfg_modifLogin" value="oui" <?php if($dv_modifLogin) echo "checked=\"checked\""; ?> /><label>Oui</label> <input type="radio" name="cfg_modifLogin" value="non" <?php if(!$dv_modifLogin) echo "checked=\"checked\""; ?> /><label>Non</label></td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">affichage</th>
		</tr>
		<tr>
			<td class="etiquette">Nombre de lignes par page :</td>
			<td class="champ"><input type="text" name="cfg_nbLignes" size="3" value="<?php echo htmlentities($dv_nbLignes, ENT_COMPAT, "UTF-8") ?>" /></td>
		</tr>
		<tr>
			<td class="etiquette">Pied de page :</td>
			<td class="champ"><input type="text" name="cfg_footer" size="50" value="<?php echo htmlentities($dv_footer, ENT_COMPAT, "UTF-8") ?>" /></td>
		</tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Modifier" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
	</table>
</form>
<div class="information">
	<div class="titre">Information</div>
	<h4>Maintenance :</h4>
	<p>En période de maintenance, seuls les administrateurs pourront accéder à l'application.</p>
	<h4>Validation d'inscription :</h4>
	<p>Si l'option est choisie, les administrateurs devront valider les nouveaux inscrits pour qu'ils puissent se connecter.</p>
	<h4>Niveau d'accès :</h4>
	<p>Indique le niveau d'accès par défaut des utilisateurs. Ce niveau peut être modifié pour chaque utilisateur, par les administrateurs, dans le profil des utilisateurs.</p>
	<h4>Nombre de lignes par page :</h4>
	<p>Dans les pages contenant des listes, le nombre de lignes qui s'affiche sur une seule page de la liste.</p>
</div>
<div class="information">
	<div class="titre">Droits d'utilisation</div>
	<p>
		- <b><i>Se Connecter</i></b> : l'utilisateur peut se connecter à l'application et modifier son profil<br />
		- <b><i>Consulter</i></b> : l'utilisateur peut consulter les listes et les détails des données<br />
		- <b><i>Ajouter</i></b> : l'utilisateur peut ajouter des données<br />
		- <b><i>Modifier</i></b> : l'utilisateur peut modifier des données existantes<br />
		- <b><i>Supprimer</i></b> : l'utilisateur peut supprimer des données existantes<br />
	</p>
	<br />
	<p>
		<b>Note</b> : Les administrateurs ont tous les droits quel que soit leur niveau d'accès.
	</p>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
	
		if(isset($_SESSION)){
			include("pages/401.htm");
		}
	
	}

?>